<?php

namespace app\common\model\Product\order;

use think\Model;
// 引入软删除的模型
use traits\model\SoftDelete;

class Order extends Model
{
    //在模型内部去引入软删除
    use SoftDelete;
    //
    protected $name = 'order';

    //指定一个自动设置的时间字段
    //开启自动写入
    protected $autoWriteTimestamp = true;

    //设置字段的名字
    protected $createTime = "createtime"; //插入的时候设置的字段名

    //禁止 写入的时间字段
    protected $updateTime = false;

    //设置软删除的字段更新的时间字段
    protected $deleteTime = 'deletetime';

    protected $append = [
        'createtime_text',
        'status_text'
    ];

    // 订单状态数据
    public function getStatusList()
    {
        return [
            '0' => __('未支付'),
            '1' => __('已支付'),
            '2' => __('已发货'),
            '3' => __('已收货'),
            '4' => __('已完成'),
            '-1' => __('仅退款'),
            '-2' => __('退款退货'),
            '-3' => __('售后中'),
            '-4' => __('退货成功'),
            '-5' => __('退货失败')
        ];
    }

    // 订单状态的获取器
    public function getStatusTextAttr($value, $data)
    {
        $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
        $list = $this->getStatusList();
        return isset($list[$value]) ? $list[$value] : '';
    }


    public function getCreateTimeTextAttr($value,$data){
        $createtime = isset($data['createtime']) ? trim($data['createtime']) : '';
        if(empty($createtime)){
            return '';
        }
        return date('Y-m-d H:i',$createtime);
    }
     
    public function express(){
        // order.expressid = expressquery.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Express','expressid','id',[],'LEFT')->setEagerlyType(0);
    }


    public function business(){
        // order.busid = business.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Business\User','busid','id',[],'LEFT')->setEagerlyType(0);
    }

    public function address(){
        // order.businessaddrid = address.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Business\Address','businessaddrid','id',[],'LEFT')->setEagerlyType(0);
    }

    public function sale(){
        // order.adminid = admin.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\admin\model\Admin','adminid','id',[],'LEFT')->setEagerlyType(0);
    }

    public function review(){
        // order.checkmanid = admin.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\admin\model\Admin','checkmanid','id',[],'LEFT')->setEagerlyType(0);
    }

    public function dispatched(){
        // order.shipmanid = admin.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\admin\model\Admin','shipmanid','id',[],'LEFT')->setEagerlyType(0);
    }

}
